home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / knowhow4 / bl.cpp < prev    next >
C/C++ Source or Header  |  1994-10-10  |  3KB  |  101 lines

  1. #include "bl.h"
  2.  
  3. Bl::Bl(rect coord, char* fName, char* h, int shadow, int res,
  4.             BORDERS b_type, BORDERS hdr_b_type, int pat, int hdr_pat,
  5.         int elem_pat)
  6.     {
  7.     w1 = new Window(coord, fName, h, shadow, b_type, hdr_b_type,
  8.            res, pat, hdr_pat);
  9.     background(w1);
  10.  
  11.     rect r;
  12.     cancel_element = new Element(
  13.         (r = rect(screenXL(coord.origin.X) + w1->get_shadow(),
  14.          screenYT(coord.origin.Y) + w1->get_shadow(),
  15.          screenXR(coord.origin.X + 2) + w1->get_shadow(),
  16.          screenYB(coord.origin.Y + 1) + w1->get_shadow())),
  17.          CANCEL_ELEMENT, BUTTON_BORDER, elem_pat, 1);
  18.  
  19.     cancel_element->set_ret(1);
  20.  
  21.     add(cancel_element);
  22.     assign(w1, cancel_element, AC_CANCEL);
  23.  
  24.     if(res & MOVE)
  25.     {
  26.     move_element = new Element(
  27.         rect(r.origin.X, r.origin.Y + pScreenSet->cell_height,
  28.         r.corner.X, r.corner.Y + pScreenSet->cell_height),
  29.         MOVE_ELEMENT, BUTTON_BORDER, elem_pat, 1);
  30.     add(move_element);
  31.     assign(w1, move_element, AC_MOVE);
  32.         }
  33.     else
  34.         move_element = NULL;
  35.     if(res & RESIZE)
  36.         {
  37.     resize_element = new Element(
  38.         rect(screenXL(coord.origin.X) + w1->get_shadow(),
  39.              screenYT(coord.origin.Y + 2) + w1->get_shadow(),
  40.          screenXR(coord.origin.X + 2) + w1->get_shadow(),
  41.          screenYB(coord.origin.Y + 3) + w1->get_shadow()),
  42.          RESIZE_ELEMENT, BUTTON_BORDER, elem_pat, 1);
  43.     add(resize_element);
  44.     assign(w1, resize_element, AC_RESIZE);
  45.         }
  46.     else
  47.         resize_element = NULL;
  48.  
  49.     moveTo(1);
  50.     }
  51. ////////////////////////
  52. void Bl::rearrange()
  53.     {
  54.     rect coord = textRect(w1->bound());
  55.     rect r;
  56.     cancel_element->repose(r =
  57.         rect(screenXL(coord.origin.X) + w1->get_shadow(),
  58.          screenYT(coord.origin.Y) + w1->get_shadow(),
  59.          screenXR(coord.origin.X + 2) + w1->get_shadow(),
  60.          screenYB(coord.origin.Y + 1) + w1->get_shadow()));
  61.  
  62.     if(move_element != NULL)
  63.     move_element->repose(
  64.         rect(r.origin.X, r.origin.Y + pScreenSet->cell_height,
  65.         r.corner.X, r.corner.Y + pScreenSet->cell_height));
  66.     if(resize_element != NULL)
  67.     resize_element->repose(
  68.             rect(screenXL(coord.origin.X) + w1->get_shadow(),
  69.              screenYT(coord.origin.Y + 2) + w1->get_shadow(),
  70.          screenXR(coord.origin.X + 2) + w1->get_shadow(),
  71.          screenYB(coord.origin.Y + 3) + w1->get_shadow()));
  72.     }
  73. ////////////////////////
  74. void Bl::show_window()
  75.     {
  76.     mouseHideCursor();
  77.     w1->show_window();
  78.     show();
  79.     mouseShowCursor();
  80.     }
  81. ////////////////////////
  82. /*
  83. void main()
  84.     {
  85.     if(!init_KNOW_HOW())
  86.         return;
  87.     setfillstyle(SOLID_FILL, pColorSet->colors.BAK_COLOR);
  88.     bar(0, 0, getmaxx(), getmaxy());
  89.  
  90.     Bl b(rect(10, 10, 60, 20), "window.pcy", "Block", 6,
  91.         MOVE | RESIZE, SHOW_BORDER, SHOW_BORDER,
  92.         16, 17, 18);
  93.  
  94.     b.show_window();
  95.     b.exe();
  96.  
  97.     close_KNOW_HOW();
  98.     closegraph();
  99.     }
  100. */
  101.